/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package swing.modelos;

import hibernate.dao.impl.ProductosDAOImpl;
import hibernate.entidades.Productos;
import java.util.Iterator;

/**
 *
 * @author ariel
 */
public class ModeloProductos extends ModeloTabla<Productos, String> {

    public ModeloProductos() {
        super(new ProductosDAOImpl());
        this.setColumnas(new String[]{"Código", "Nombre", "Proveedor", "Descripción", "Precio", "Stock"});
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {

        Productos producto = (Productos) getListadoTabla().get(rowIndex);
        String nombreProveedor = null;

        //Si se ha borrado el proveedor, aún se puede mostrar este campo
        if (producto.getCodProv() != null) {
            nombreProveedor = producto.getCodProv().getNombre();
        }
        Object[] values = new Object[]{producto.getCodStock(), producto.getNombre(), nombreProveedor, producto.getDescripcion(),
            producto.getPrecio(), producto.getStock()};
        return values[columnIndex];
    }

    public Productos getRow(String codStock) {
        Iterator<Productos> iterator = this.getListadoTabla().iterator();
        while(iterator.hasNext()){
            Productos producto = iterator.next();
            if (producto.getCodStock().equals(codStock))
            {
                return producto;
            }
        }
        return null;
    }
    /**
     * Aplica las modificaciones en el modelo que aún no se habían guardado en la BD
     */
    public void aplicarStocks(){
        Iterator<Productos> iterator = this.getListadoTabla().iterator();
        while(iterator.hasNext()){
            this.addRow(iterator.next());
        }
    }
}
